\chapter{术语表}
\label{app:glossary}

本附录给出手册中涉及的关键概念与术语。

\section{通用术语}

\begin{description}
    \item[转译器] 将一种语言源码转换为另一种语言的工具。cpp-orchestrator 即是将 C\# 转为 C++ 的转译器。
    \item[代码生成] 从中间表示自动生成目标语言源码的过程。
    \item[语义分析] 除语法外理解代码含义的阶段，Roslyn 为 C\# 提供语义分析能力。
    \item[类型映射] 将源语言类型映射为目标语言等价类型。
    \item[桩代码] 缺失依赖时自动生成的占位实现，便于后续补全。
    \item[流水线] cpp-orchestrator 的四阶段流程：Roslyn 分析 $\rightarrow$ IR 生成 $\rightarrow$ C++ 生成 $\rightarrow$ 编译。
\end{description}

\section{cpp-orchestrator 组件}

\begin{description}
    \item[cpp-orchestrator] 主体 Python 程序，负责 orchestrator 流程。
    \item[Roslyn] Microsoft 提供的 C\# 编译平台。
    \item[IR] 中间表示，以 JSON 描述 C\# 类的结构信息。
    \item[TypeMapper] 负责类型映射，例如 \code{string} $\rightarrow$ \code{std::string}。
    \item[SymbolResolver] 负责命名空间与符号解析，将 C\# 命名空间转换为 C++。
    \item[CppEmitter] 根据 IR 生成 C++ 头文件与源文件。
    \item[StubGenerator] 为缺失类型生成桩代码。
\end{description}

\section{C\# 相关术语}

\begin{description}
    \item[属性] C\# 中带 getter/setter 的成员，在 C++ 中展开为函数。
    \item[自动属性] 由编译器生成 backing field 的属性，转换后同样生成对应字段。
    \item[委托] 指向函数的类型，转换为 \code{std::function}。
    \item[泛型] C\# 的泛型机制，对应 C++ 模板。
    \item[可空类型] 形如 \code{int?} 的类型，生成 \code{std::optional<int>}。
    \item[命名空间] 代码组织方式，对应 C++ 命名空间。
\end{description}

\section{C++ 相关术语}

\begin{description}
    \item[头文件] 承载声明的 \code{.hpp} 文件。
    \item[源文件] 承载实现的 \code{.cpp} 文件。
    \item[模板] C++ 泛型机制。
    \item[\code{std::optional}] 表示可选值的标准库类型。
    \item[\code{std::function}] 可存储任意可调用对象。
    \item[\code{std::vector}] 动态数组容器，常用于映射 \code{List<T>}。
    \item[\code{std::unordered\_map}] 哈希表容器，对应 \code{Dictionary<K,V>}。
\end{description}

\section{命名约定}

\begin{description}
    \item[PascalCase] 每个单词首字母大写，C\# 类与方法常用。
    \item[camelCase] 首词小写、其余单词首字母大写，常用于参数。
    \item[snake\_case] 单词间用下划线分隔，cpp-orchestrator 输出的函数与变量使用该风格。
    \item[m\_ 前缀] C++ 私有字段的惯例前缀。
    \item[缩写处理] 对 ID、HTTP、API 等缩写保持整体小写或根据配置保留原状。
\end{description}

\section{Phase 3 专用术语}

\begin{description}
    \item[Phase 3] 项目第三阶段，目标是将编译成功率提升至 80\% 以上。
    \item[多代理协作] 通过多位专用开发者并行处理缺失类型、命名、桩代码等问题。
    \item[编译成功率] 生成 C++ 文件成功编译的比例。
\end{description}
